package newLeetCode.stackTest;

import java.util.Stack;

/**
 * @author moso
 * @Date 2025/6/22 19:59
 * 题目描述（LeetCode 232. 用栈实现队列）
 * 请你使用两个栈实现一个队列，支持基本操作：push(x)、pop()、peek()、empty()。
 */

public class Stack2Queue {
    Stack<Integer> stackIn = new Stack<>();
    Stack<Integer> stackOut = new Stack<>();

    public void push(int i){
        stackIn.push(i);
    }

    public boolean empty(){
        return stackOut.isEmpty() && stackIn.isEmpty();
    }

    public int pop(){
        if (stackOut.isEmpty()){
            while (!stackIn.isEmpty()){
                stackOut.push(stackIn.pop());
            }
        }
        return stackOut.pop();
    }




    // 获取首元素
    public int peek(){
        if (stackOut.isEmpty()){
            while (!stackIn.isEmpty()){
                stackOut.push(stackIn.pop());
            }
        }
        return stackOut.peek();
    }

}
